#2 is correct and is good, natural English.
#3 can be made correct by adding the word "for:" "For how many days will we have enough food?" (You can also say "How many days will we have enough food for?" This is correct and natural, but it poses a strange problem: there is a grammar myth that says it is "bad English" to end a sentence with a preposition.)
#1 is not correct and cannot easily be corrected. You can ask "Do we have enough food for five days?" but you can't substitute "how many" for "five."