Pay to script hash (P2SH) is an advanced type of transaction used in Bitcoin and other similar cryptocurrencies. Unlike P2PKH, it allows sender to commit funds to a hash of an arbitrary valid script. Currently, P2SH is mainly used for MultiSig and non-native SegWit transactions (P2WPKH-in-P2SH).
An output that pays to a P2SH scriptPubKey is spent by an input with a scriptSig that provides the correct redeem script along with all the data (like signatures and corresponding public keys) necessary for the successfull script evaluation:
scriptPubKey: OP_HASH160 <redeemScriptHash> OP_EQUAL scriptSig: <singatures> <publicKeys> <redeemScript>
To understand how transactions work on basic technical level, check blog post Types of Bitcoin transactions: Part I, Part 2. More detailed description can be found in Bitcoin Wiki or in Bitcoin.org Developer guide.
Address and version bytes 
P2SH address = Base58Check ( <versionBytes> <redeemScriptHash> )
Version bytes for P2SH addresses are listed in Trezor coins definitions under
address_type_p2sh field of a particular JSON file. For example in Bitcoin, P2SH addresses start with "3" (version bytes 5), while in Litecoin they start with "M" (version bytes 50) etc.