Зачем импортировать dp из всех файлов без разбору? В реальности будет импортирован последний, остальные будут импортированы впустую. Потому что следующий from импортирует другой dp и по имени dp будет доступен уже другой объект из другого модуля.
Объект dp надо создать один раз в одном месте. В принципе, можно потом его потенциально импортировать куда угодно.
Если хочется некоторой модульной структуры, то можно сделать в каждом модуле функцию навроде register_all_handlers(dp) и в ней делать
https://docs.aiogram.dev/en/latest/dispatcher/inde.... Соответственно, после импорта всех модулей с хендлерами можно вызвать эту функцию от всех модулей:
Примерно такimport menu_commands
import admin_commands
import message_handlers
dp = создаём_свой_Dispatcher
menu_commands.register_all_handlers(dp)
admin_commands.register_all_handlers(dp)
message_handlers.register_all_handlers(dp)