Если вы пытаетесь скрыть существующую форму, (new Form2()).Hide()
не сделает этого, так как это создаст новую форму из класса Form2.
Предполагая, что Button1 находится в форме, которую вы хотите скрыть, вы хотите:
private void button1_Click(object sender, EventArgs e)
{
(new Form3()).Show();
this.Hide();
}
Если он не в той же форме, вам понадобится ссылка на форму, которую вы хотите скрыть:
private Form2 form2 = new Form2();
private Form3 form3 = new Form3();
form2.Show();
private void button1_Click(object sender, EventArgs e)
{
form2.Hide();
form3.Show();
}