Is only high demand causing the long transaction time or the high price of a bitcoin or both?
Transactions are confirmed on average once every 10 minutes. Becuase of the luck involved in bitcoin mining, it can be faster than that (a few seconds!) or slower (an hour or more!), but the overall average works out to 10 minutes.
Every 2016 blocks, roughly every 2 weeks, the difficulty is adjusted to try to keep that average at 10 minutes. So, if it takes more than 20160 minutes to solve those 2016 blocks, then blocks are being solved too slowly. The difficulty is decreased proportionally so that blocks will speed up to about 10 minutes per block. If it takes less than 20160 minutes to solve those 2016 blocks, then blocks are being solved too quickly. The difficulty is increased proportionally so that blocks will slow down to about 10 minutes per block.
Now, there is a limited amount of room in a block, and the miners get to keep all the transaction fees of all the transactions that they included in their block. Therefore, miners choose the transactions that pay the largest fee per byte (or per vByte) until the block is full. If you pay a high enough fee, then your transaction gets included. The fee is a bit like a blind auction where the one sending the transaction is bidding for space in the block. If your fee is not high enough, then your transaction waits until the next block at which time the process repeats. If your transaction fee still isn't high enough, then the transaction continues to wait until there aren't any transactions with higher fees and a block isn't yet full.
So, high demand (meaning lots of transactions all being sent in a short amount of time) results in higher fees necessary for fast confirmation (since you need to outbid most of the others) and longer wait times for the low-fee transactions (since you need to wait for the higher fee transactions to all be confirmed first).
The high price of Bitcoin tends to increase the awareness and popularity of Bitcoin. This increase in awareness and popularity results in an increase in the number of transactions sent. So, the high price indirectly increases the necessary fee for fast confirmation and the time to wait for a low-fee transaction BECAUSE it increased demand.
And would adding more miners (supply) increase or decrease the transaction time?
No. The supply is relatively fixed at 1 block every 10 minutes on average. Adding hashpower would briefly increase the speed of blocks until the difficulty adjustment (less than two weeks), but overall wouldn't have any long-term effect on the supply of block space. Instead, Bitcoin forces demand to adjust. An increase in transaction fees for fast confirmation results in less people willing to send transactions during times of high demand (since it will cost them more money) which reduces demand. Also, longer wait times for low-fee transactions results in less people willing to send transactions during times of high demand (since they become frustrated with the long wait times) which reduces demand. This continues until an equilibrium is reached between the number of people willing to pay the fee or wait and the amount of block space available.
Note that there is a second layer that has been added to Bitcoin to increase the supply (quantity of transactions per second supported) to allow cheap fast transactions. It's called Lightning Network.