How to handle this and ask them to speak in English so that everyone understands?
Say a variation of any of the following:
I'm sorry, could we return to [company language]?
Sorry to interrupt but I'm afraid you've lost me here, could you repeat that in [company language]?
I didn't catch that, could we stick to [company language]?
As long as you remain matter-of-fact and just gently steer the conversation back to the company language no one should think less of you for doing so. Most decent coworkers will also eventually get the hint and stop switching to the local language in the first place.
People with great interpersonal skills can inject some levity here with half-joking responses like "Ah, I caught [word in local language] but I'm not sure we're talking about [unrelated topic linked to that word]." But that takes some skill and charisma to pull off. It's not something I could or would do.
Is this unprofessional behaviour of my co-workers?
Yes, though it's not that uncommon, particularly in certain (company) cultures. It happens more often with junior people and with colleagues who aren't very well versed in the company language. When they're struggling to translate something it's often easier to switch to the local language to explain to their peers. Sometimes that can be appropriate but then they should tell you that they're switching to [local language], keep the discussion short, and summarise what was discussed after the conversation returns to the company language. But in most companies or departments that have an international staff, employees at all levels are typically expected to be able to converse in the company language.
That said, if it happens rarely it's often not worth making a big deal of. But if the conversation often moves to the local language while you're there you should address that with your manager or whoever is running those meetings or that team. You'd say something like:
I've noticed that we often switch to the local language in meetings and as you know I don't speak [local language] at all, which makes it impossible for me to follow the conversation. Can we make sure that in future meetings we stick to [company language]? I realise that it's sometimes more convenient to switch but when extended conversations are held in a language I don't speak I completely lose track of the discussion.
Not that this only really applies to team meetings and discussions that are work-related and that actually involve you. If this happens during idle office chatter that is still a problem, but you would address it differently. You'd also focus on first making sure that it doesn't happen in work discussions first before trying to force changes during social chat.