Can a single application connect to two different databases each of which is in different Instances. One instance has on-premise deployment, the other one is Azure SQL(not SQL in Azure VM). So basically is it possible for an application to access data from both Instances?
Yes, you can use so many connections you need.
You can find some examples about ConnectionString's here.
And MS Docs about Azure ConnectionString's here.