I am trying to achieve something like this 

My code is as follows
          <form class="needs-validation" action="submit_gene_entry.php" method="post">
            <div class="row ">
              <div class="col-xs-2 mb-3">
                <label for="geneLetters_postvar">Gene name</label>
              </div>
              <div class="col-xs-1 mb-3">
                <p class="input-group" >
                  <input name=geneLetters_postvar type=text  pattern="[a-z]{1,3}" class="form-control" placeholder="gene letters" required autofocus title="letters of the gene name">
                </p>
              </div>
              <div class="col-xs-1 mb-3 text-center">
                <label for="geneNumbers_postvar">-</label>
              </div>
              <div class="col-xs-2 mb-3">
                <p class="input-group" >
                  <input name=geneNumbers_postvar type=text pattern="[0-9]{1,6}" class="form-control" placeholder="gene numbers" title="numbers only" required>
                      </p>
                  </div>
            </div>
          </form>
      </div>
And you can see it in action at https://jsfiddle.net/mauricev/rj4so0c9/1/.
As you can see the text is off-center vertically. Why is that? And the form fields are too wide. I can't seem to make them narrower and have them space out properly.
 
    