Для настройки общего хранилища для хранения состояний в Aiogram 3, вам необходимо создать экземпляр класса MemoryStorage и передать его в качестве параметра при создании объекта класса Dispatcher. Например:
```python
from aiogram import Bot, Dispatcher
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.contrib.middlewares.logging import MemoryStorage
bot = Bot(token="YOUR_TOKEN")
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
dp.middleware.setup(LoggingMiddleware())
```
Для связывания 3 роутеров для разных хендлеров в одно хранилище класса MemoryStorage, вам необходимо создать каждый роутер в отдельном файле и передать им общее хранилище при создании объекта класса Dispatcher. Затем импортировать все роутеры в главном файле приложения и добавить их в диспетчер. Например:
file1.py:
```python
from aiogram import Dispatcher
dp = Dispatcher()
```
file2.py:
```python
from aiogram import Dispatcher
dp = Dispatcher()
```
file3.py:
```python
from aiogram import Dispatcher
dp = Dispatcher()
```
main.py:
```python
from aiogram import Bot, Dispatcher
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.contrib.middlewares.logging import MemoryStorage
from file1 import dp as dp1
from file2 import dp as dp2
from file3 import dp as dp3
bot = Bot(token="YOUR_TOKEN")
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
dp.middleware.setup(LoggingMiddleware())
dp.register(dp1)
dp.register(dp2)
dp.register(dp3)
```
Таким образом, вы сможете связать 3 роутера для разных хендлеров в одно общее хранилище и разделить хендлеры по файлам.