Hashing functions - How to define them?
They are not. First of all, $\{0,1\}^*$ and $\mathcal{G}$ are not "values", they are sets. $\times$ does not mean multiplication, but the Cartesian product of those sets. Second of all, those are not definitions of functions. All that's specified there is the domain and range of the hash functions. Specifically $H_1$ maps tuples $(a,b,c)$, where $a\in\{0,1\}^*$ and $b,c\in\mathcal{G}$ to an element of $\mathbb{Z}_n^*$.  
See above. $H_2$ maps tuples consisting of two elements of $\{0,1\}^*$ and four elements of $\mathcal{G}$ to an element of $\mathbb{Z}_p^*$.
You don't need any prime numbers to define a hash function. But also there are no definitions of hash function anywhere in your question.
They have a different domain. Meaning that they accept different inputs.
The output of those functions is not a bitstring. It's an element of $\mathbb{Z}_n^*$ and $\mathbb{Z}_p^*$ respectively. The values may be encoded as a bitstring, where the canonical encoding would indeed have length at most 160 bits.