Try inserting the size before labeling:
fig1 = Labeled[Show[a, ImageSize -> 500], "(a)", Bottom]
In general I have learned to avoid GraphicsRow, because it is so hard to get the size the way I want. Try Grid instead.
I would use PlotLabel when generating the a, instead of adding it later with Labeled.