I use mbsync (formerly isync) to synchronize multiple external mailboxes to a local Maildir store. I use it with mu4e, but it'd work fine with mutt or any other client that supports Maildir.
I pair this with imapnotify (keeps a constant connection to each of the IMAP servers for the email addresses I have) that calls mbsync the moment I get a new email. It was a bit annoying to set up at the time but now my (neo)mutt client updates pretty much instantly with any new email.
https://isync.sourceforge.io/