Don’t know whose fault it is but something sets the page to A4. We can see at line 713 of the ps file:
% PostScript produced by:
%@GMT: gmt plot -T -Y6i
which, I presume, was produced by PyGMT command with fig.shift_origin(yshift='6i'): But on the other hand your original example doesn’t have start with a shift and it was also cut. So, in summary, this needs to be debugged from within PyGMT to find out why the page size is set to A4 but I’m not a pyG dev.