Welcome to StackExchange.
The SQL database will only need to be installed on 1 node, as the nodes share the storage already since SQL Server is 'cluster aware'. However if you use something that is not 'cluster aware' such as SSIS, then packages will have to be installed on both nodes.
The reason you need to do 2 installations is because the nodes do not share installation files found on the local disk of the machine, but anything you do on shared storage and within SQL Server will be retained when failing over. It's 1 database engine and 2 nodes.
Off topic, but a thought might be to have scripts that copy backup files and such so I make my 'backups' drive a cluster resource, and point all of my scripts to the virtual cluster address so even in case of a failover, they work.
If you want to be able to sustain a failover of two nodes within the failover cluster, then you'll need to ensure that you have five voters for quorum.
You currently have three nodes, and even if you were to add a disk witness, you'd still be at the same point: whether you have three or four possible quorum votes, you'd still need to have three votes for quorum (you need to have more than half of the votes for quorum).
I've never heard the terminology of a "witness server" before, and I think that person is just trying to give a logical name to simply adding another node to your cluster.
In other words, if you now have a four node cluster with a disk witness, that'll be a total of five voters. Five voters will allow you to sustain two nodes to fail (provided your disk witness continues to be functioning properly).
With that being said, you also need to answer a few questions for yourself:
Does you really need three separate instances in this cluster? What is the driving force behind that?
Can one of your possible owning nodes for the FCI be able to sustain all three instances of SQL Server? (think about it, there could be a lot of serious contention there)
Do all of these instances need to be in the same cluster?
And I do want to echo what @AaronBertrand has said above in his comment on your question. There is no such thing as an active / active [ / n [ / n ... ] ]
cluster for SQL Server. It's extremely misleading to think of it like that, and that terminology has traditionally caused a lot of confusion (not to mention, the basic problem of a wrong title for something).
Best Answer
Yep that is quite possible. You can have 3 node(let us use node instead of server) cluster with each SQL Server instance on one node A and Node B respectively and 3rd node is their in case of failover.
You can also have two instances running on same node(suppose Node A) and other node(Node B) acting as passive node. But such configuration is not a best one which you should go with.
In case of failover, and both nodes A and B down, yes node c will act as owner of both instance running on Node A and Node B.
You must understand witness helps in forming quorum. I would suggest you read this blog Understanding Behavior of Dynamic Witness. If you then have a specific question feel free to ask.