Batching sprites in same sprite atlas, but different texture

In my sprite atlas, there are so many sprites in it, so packing the sprite generates 2 textures, #1 and #2. Launched the game, and I checked how many draw calls were done and the result was a total disaster. Each sprite of the same sprite atlas was rendered in all different draw calls, all the reasons were they had different material blocks.

Is there any solution to make batching works with different textures but in the same sprite atlas?

I resolved this by reducing the Max Texture Size of my Sprite Atlas until all sprites fit on one page. I just kept lowering it level by level until I found the biggest size while still fitting in a single page.

I would try that, but my game is for Android and has a max texture size limit of 2K.