If two parties submit a conflicting transaction between each other, how does the network decide which one is correct? Let's say parties A and B both submit a transaction to the blockchain with a different version of what happened. Party A submits a transaction saying Party B gave him 3 BTC and Party B submits a transaction saying he gave Party A only 1 BTC. How does the network decide which one to put in the next block? 

Don't you have to trust a third party? A wallet or some kind of transaction application? How does that work?
If two transactions spend the same coin (utxo) only one is allowed in each node's mempool. That may not be the tx that gets actually confirmed by a miner though and inserted into a block. In that case, the confirmed transaction "evicts" the double-spend from the mempool. 

It is possible that two competing miners each mine different blocks at the same height with conflicting transactions. This is a split blockchain and a split network, but it's not a problem. Eventually one of these blockchain branches will be extended by an additional block. The chain with the most accumulated proof of work is the only one that matters, and the other branch (with the conflicting TX) will again be wiped out. 

If you are running your own full node you don't need to trust any other source of truth. If you are a vendor accepting bitcoin, this is why "waiting six confirmations" is generally accepted as best practice.