You are stating you are using viewstate for storing the current page number, and by this I guess you are explicitly storing this number in viewstate.
However, asp.net will by default store a lot of data in viewstate. In your example, having 3 controls with paging enabled, asp.net will store "all data in the control" i.e. all the data that is currently being shown in the 3 controls will be stored in viewstate.
A solution to this could be to turn "off" viewstate on the 3 paged controls explicitly, unfortunately this means you will have to rebind the controls on each pageload, which may or may not be an option for you.
If you just need to store the page-number, you could for instance move it into control-state as described on msdn and on pluralsight.
Use a querystring as suggested in another answer.
Or you could just continue to use viewstate, and then proceed to turn off viewstate for either the entire page or just the paged-controls, whatever works for you.
I would really suggest reading Truly Understanding Viewstate by Mrunal Brahmbhatt for an in-depth explanation of viewstate.