Память есть разная:
1. Flash ( progmem ) - размер для каждой области определяется таблицей разделов, править можно и нужно под себя, исходя из того - нужна ли OTA, SPIFFS ну и размеров самой памяти естественно. Ничего сложного в этом нет.
2. RAM - оперативная память, в основном определяется контроллером - максимум можете через страничную организацию ее расширить, ценой использования кучи пинов - но в реальности так практически никто не делает
3. PSRAM - дополнительная память по последовательному интерфейсу - скорость обмена относительно низкая, в ESP32 из-за разных багов (кеширования, himem) работать с ней не особо удобно, но можно - в основном используется для хранения фреймов видео, звука, логов и т.д. Также без доп. усилий можно безопасно работать с 2мб, если добавить дефайн фикса кеширования, то с 4мб, если сторонние библиотеки - то и свыше 4мб, если починят himem, то можно будет и без сторонних библиотек. В случае с ESP32-S2 и ESP32-S3 - доступ к PSRAM проще и без особых костылей.
Как-то так.