Answering since I cannot add comments. I'm running Git on Windows and the following alias works for me, it is very similar to yours:
git config --global alias.pullall !"git pull && git submodule update --init --recursive"
Then you can run the command git pullall
.
I don't remember why it was, but my alias wasn't working when I used single quotes to wrap my command. May have been a Windows-issue.