I think I got it to work with this:
linkaxes([sp3,sp4],'x');
linkprop([sp3(1),sp4(1)],'YLim');
linkprop([sp3(2:end),sp4(2:end)],'YLim');
But then I notice that the y axis limits are automatically becoming what was set in the first plot's limits, so if the next plots are outside of this range they look terrible.