I think this is because you fixed the axes origin to {0,3} and for values of m<0.1 the y values go below that. If you go above your y values are much less than -3 but the plot still wants to keep the x-axes visible.
One solution is to remove AxesOrigin
such that the axes are at {0,0}. Or you can and use Frame -> True, FrameTicks -> Automatic
Last solution is to make the plot, find the PlotRange and then use that to reposition the axes at the bottom.
plot = Plot[...];
Show[plot,
AxesOrigin -> {0,
1.1 First@Last[PlotRange /. AbsoluteOptions[plot, PlotRange]]}]