Let's look at the change between each number:
8 - 3 = 5
18 - 8 = 10
_ - 18 = ?
78 - _ = ?
158 - 78 = 80
Look at the sequence of changes:
5, 10, ?, ?, 80
How about doubling? 5 * 2 = 10.
Will that work if we continue it? 10 * 2 = 20, then 20 * 2 = 40, then 40 * 2 = 80.
That appears to work, so the original pattern is to add 5, then add 10, then add 20, and so on.
3 + 5 = 8
8 + 10 = 18
18 + 20 = 38
38 + 40 = 78
78 + 80 = 158
The missing number is 38.