That is obvious, you are using same connection object between two different dataReaders.

You can try peterpaulrubens2011 way to run only one datareader at one time, or use two different connection objects for each datareader.

Code:
private void comboBox3_TextChanged(object sender, EventArgs e)
        {
            SqlCommand Sc5 = new SqlCommand("select emp_fname+' '+ emp_sname+' '+ emp_lname as en from employee where emp_id=" + comboBox3.SelectedItem, cn);

            if (cn.State == ConnectionState.Closed)
                cn.Open();
            SqlDataReader rdr2 = Sc5.ExecuteReader();
            if (rdr2.Read())
            {
                comboBox2.Text = rdr2["en"].ToString().Trim();
                rdr2.Close();
                cn.Close();
            }
            else
            {
                //MessageBox.Show("Not found");
                rdr2.Close();
            }
        }