Вам нужно поместить оба поля ввода в один и тот же div / столбец и определить ширину как 50% (даже меньше, чем 47% для размещения любого отступа или поля)
<div class="form-row">
<div class="col-3" id="fn1">
<input type="text" class="form-control half-input" placeholder="First name" name="firstName">
<input type="text" class="form-control half-input" placeholder="Last name" name="lastName">
</div>
</div>
Обратите внимание, что оба поля находятся вто же самое div, и я добавил новый класс к этим двум: "половина ввода".Определение стиля:
.half-input {
display: inline-block;
width: 47%;
}
Вот рабочая JSFidlle