Plot is getting cutoff

That makes no sense. Not saying it doesn’t happen, just that it makes no sense because when PS_MEDIA is not set the default paper size is 11 meters by 11 meters.
Can you send us the ps for that case?

Here you go (I have appended the ending lines to the .ps file as suggested above).

NO_PS_MEDIA_SET.ps (29.5 KB)
PS_MEDIA_SET.ps (29.5 KB)

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.