As you have said you’ve setup your external as primary, this is probably completely unnecessary, but I’ll add it for completeness.
In the image below, the white bar at the top of one of the displays denotes the primary display - you’ll likely be well aware of that.
You can drag it onto whichever one you want to set as primary.
That out of the way, some apps do still have a habit of opening on the last screen on which they were used.
If you right click on the icon of any such app in the dock and go to options. You’ll see in there the option to set which screen the app is shown on. Just select whichever one it is you’d like to see it on and it should solve the problem….. At least until you disconnect your MacBook, it doesn’t always persist between disconnects.
Incidentally, the None option for assigning an app to a specific desktop, is the default and the one which remembers the screen on which it was opened.