Is there any way way to create multiple screens in Pygame without redrawing to the screen every time. For example, if we want to create a splash screen, then a main menu with buttons. On clicking the 'Start Game' button, it would go to a new screen which is the actual game. What I mean is anything similar to the 'Form' on Visual Studio or the Activites on Android.
Depends on what you mean.
If you mean making multiple windows at the same time, no, you can't do that--it's a limitation of SDL (although you CAN fake it by using multiprocessing (not multithreading)).
If you mean changing one screen around, yes, you can do that, with multiple calls to pygame.display.set_mode(...).  You can change the resolution, arguments, etc.  If you're doing OpenGL stuff, that will remake the context too.
If you just mean drawing different things to the same window, of course!  That's sorta the point of PyGame.
Other than that, you'll have to clarify.
Creating multiple screens in pygame