In most cases you don't have to call MakePixelPerfect.
If you create the sprite with the correct sprite collection settings, it will be pixel perfect at the resolution & ortho settings.
So if you create a sprite collection with target height = 640, and ortho size = 10 -
Any sprites you create from this collection will display pixel perfect automatically when displayed at any resolution with 640 height, and in an orthographic camera with 10 height.
So if the resolution changes, instead of changing the sprite sizes, and messing about with all that, just change the camera orthographic size to compensate and make it always pixel perfect.