One problem is that for time hierarchy you have to increase the class by a logarithmic factor to obtain new languages since the simulation introduces a logarithmic time overhead (unless you come up with something more efficient).
Instead, we prove P is properly contained in EXP with a diagonal argument. Define language A that is decidable in $O(2^n)$ but not in $o((2^n)/n)$. We define A as the language decided by D where D is defined as follows:
D= "on input w:
Store ceiling(2^n/n) in a binary counter.
#We can do this in O(2^n) because of time constructability
Now, on each following step, decrement the counter and if it reaches 0 reject.
If w doesn't have form <M>01* for some M that is TM, reject.
Simulate M on w and reject if it accept, accept if it rejects."
So the counter's length is approximately $log(2^n/n)\in O(n)$ and the simulation adds a cost in $O(2^n/n)$ so we can give bound D's runtime above in $O(2^n)$. So A is in EXPTIME.
For contradiction, assume $A\in P$. Then $A \in Time(o(2^n/n))$.
Let M be a TM such that M decides A in $o(2^n/n)$ , then D can simulate M in time $t(n)=d\cdot o(2^n/n)$ for some constant d. Then, $\exists n_0,\forall n>n_0, t(n)<2^n/n$ by definition of $o$. Then, the simulation in D will get to the last line without timing out for M on w if $||w||>n_0$. Now, run D on $w=<M>01^{n_0}$ so the input is large enough. Now, D will do the opposite of M so M cannot decide A, since A is defined as the language decided by D, which is the contradiction we wanted. Therefore, we conclude $A\notin P$.