magento2 – save custom fields on add to cart button click

Hi i am trying to save custom field on the click of add to cart button to quote and sales_order table

below is my upgradeschema.php

class UpgradeSchema implements UpgradeSchemaInterface
{
    public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        if (version_compare($context->getVersion(), '1.0.1') < 0) {

        $installer = $setup;
        $installer->startSetup();
        $connection = $installer->getConnection();
        //cart table
        $connection->addColumn(
            $installer->getTable('quote'),
            'subscription_type',
            (
                'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
                'length' => 255,
                'comment' =>'Subscription Type'
            )

        );
        $connection->addColumn(
            $installer->getTable('quote'),
            'start_date',
            (
                'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
                'length' => 255,
                'comment' =>'Start Date'
            )

        );

        //Order address table
        $connection->addColumn(
            $installer->getTable('sales_order'),
            'subscription_type',
            (
                'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
                'length' => 255,
                'comment' =>'Subscription Type'

            )
        );

        $connection->addColumn(
            $installer->getTable('sales_order'),
            'start_date',
            (
                'type' => MagentoFrameworkDBDdlTable::TYPE_TEXT,
                'length' => 255,
                'comment' =>'Start Date'

            )
        );
     $installer->endSetup(); }
    }
}

Events.xml

<event name="sales_model_service_quote_submit_before">
            <observer name="customfields" instance="EnvisionEcommObserverCustomOptionSave" />


        </event>

customoptionsave.php

class CustomOptionSave implements ObserverInterface
{
    /**
     * @var PsrLogLoggerInterface
     */
    protected $_logger;

    /**
     * @var MagentoCustomerModelSession
     */
    protected $quoteFactory;

    /**
     * Constructor
     *
     * @param PsrLogLoggerInterface $logger
     */

    public function __construct(PsrLogLoggerInterface $logger,
                               MagentoQuoteModelQuoteFactory $quoteFactory) {
        $this->_logger = $logger;
        $this->quoteFactory =   $quoteFactory;
    }

    public function execute(Observer $observer)
    {
        $order = $observer->getOrder();
        $quoteId = $order->getQuoteId();
        $quote  =   $this->quoteFactory->create()->load($quoteId);
        $subscriptionType = $quote->getSubscriptionType();
        $order->setSubscriptionType($quote->getSubscriptionType());
        $order->save();
    }   
}

my phtml file

<select name="subscription_type" class="subscription_name" id="subscription_id">
  <option selected="selected">Choose A Plan</option>
  <?php

    $json = $this->helper('VendorModuleHelperData')->getConfig('general/quantity_ranges/ranges');
    $arr = json_decode($json, true);
    // $products =  json_decode($json, true);
    // Iterating through the product array
    foreach($arr as $data){
      //  echo "<option value= >". $data('plan')." : " ." - "."Fee". $data('price')."INR"."</option>";
      echo "<option value='".$data("price")."'>". $data('plan')." : " ." - "."Fee". $data('price')."INR"."</option>";
    }
  ?>
</select>

any idea on what am i missing my custom fields are not getting saved in db
thanks in advance