Is there a way to change the default player pawn during runtime?

To change the character/pawn during runtime you usually use the Possess node, telling the PlayerController to control a different entity.