What is the difference between H(M) and H3(M, s, IDA)? What is the difference between H(M) and H3(M, s, IDA)?

I am aware of Hash function with a Message and a Key, but there are three parameters in: 

H3(M, s, IDA).

Here M is the message, s is the key, and IDA is the identity of user A.
I meant that how to implement secure hash H3(M,s,IDA)
I'll take the (previous version of the) question as: how to implement a secure hash function $H3$ with 3 arguments, from one hash function $H$ with 1 argument, all with argument(s) in $\{0,1\}^*$.

Note: For a concrete $H$ with the destination set $\mathbb Z_p^*$ thought in the question, we could use SHA3-512 followed by a suitable function; for example, $x\to H(x)=g^{\operatorname{SHA3-512}(x)}$ where $g$ is a generator of $\mathbb Z_p^*$. That $H$ is collision-resistant to $\min\big(512,\log_2\varphi(p)\big)/2$ bits (where $\varphi$ is Euler's totient function); and first and second preimage resistant to $\min\big(512,\log_2\varphi(p)\big)$ bits. Further, it is secure in the Random Oracle Model for suitable choice of $p$.

The construction $H3(M,S,I)=H(\;M\;\|\;S\;\|\;I\;)$ where $\|$ stands for concatenation of bitstrings is such that usual security properties of $H$ (including collision-resistance and security in the Random Oracle Model) demonstrably apply to $H3$, if at most one of $M$, $S$, $I$ is of variable size.

Otherwise it is not secure in general: exhibiting a collision is trivial; for example, $H3(\text{01},\text{0101},\text{0101})=H3(\text{0101},\text{0101},\text{01})$. However, with the middle parameters $S$ random, secret, and non-malleable (as presumably in the question), there is no spectacularly practical attack.

A secure construction for variable-size inputs is $H3\big(M,S,I\big)=H\big(\;E(M)\;\|\;E(S)\;\|\;I\;\big)$, where $E$ is a prefix-free function on $\{0,1\}^*$ ; that is, such that
$$\forall X\in \{0,1\}^*,\forall Y\in \{0,1\}^*,\forall Z\in \{0,1\}^*,E(X)=E(Y)\|Z\implies X=Y$$
Examples of suitable prefix-free constructions for $E(X)$:


prefix each bit in $X$ with a $\text{0}$ bit, then append a final $\text{1}$.
prefix $X$ of length $b$ bits with $b+1$ encoded in big-endian binary (thus with $\lceil\log_2(b+1)\rceil$ bits starting with a $\text{1}$ bit), then prefix that with $\lceil\log_2(b+1)\rceil-1$ bits at $\text{0}$.
the encoding of bitstrings in ASN.1 DER then re-encoded into a bitstring (e.g. using big-endian conventions for internal consistency).