You can hook on DBUS signal NameOwnerChanged and set to 3G if not previously already on 3G. However, in my tests it was found that this approach works, but not really nice with incoming calls. Lockscreen deactivates and Profilematic (does it's job) switched to 3G in upcoming conversation. Connection dropped. :P