It is protected since your .CS page is a partial class and the ASPX page inherits the class
And when a we inherit some class we can access its protected as well as public methods
You can make the page_load event as public also and it will work but it will also expose the methods to other Classes and ASPX pages, which is not good
But you cannot make the page_load event as private as then it won't be available anywhere outside the class